package com.fiberhome.nas.core.network.datasource.photo

import com.fiberhome.nas.core.model.entity.PhotoInfo
import com.fiberhome.nas.core.model.entity.TimeBucketInfo
import com.fiberhome.nas.core.model.request.UploadRequest
import com.fiberhome.nas.core.model.response.ListData
import com.fiberhome.nas.core.model.response.NetworkResponse
import com.fiberhome.nas.core.model.response.UploadResult

/**
 * 相册相关网络数据源
 */
interface PhotoNetworkDataSource {


    /**
     * 获取时间桶列表
     */
    suspend fun getTimeBuckets(
        size: String,
        albumId: String? = null,
        sceneId: String? = null,
        peopleId: String? = null,
    ): NetworkResponse<ListData<TimeBucketInfo>>

    /**
     * 获取单个时间桶
     */
    suspend fun getTimeBucket(
        size: String,
        timeBucket: String,
        albumId: String? = null,
        sceneId: String? = null,
        peopleId: String? = null,
    ): NetworkResponse<ListData<PhotoInfo>>

    /**
     * 获取照片详情
     */
    suspend fun getPhotoInfo(photoId: String): NetworkResponse<PhotoInfo>

    /**
     * 上传照片
     */
    suspend fun uploadPhoto(uploadRequest: UploadRequest): NetworkResponse<UploadResult>
}